User input devices such as keyboards, joysticks and remote controllers are used to provide user inputs to a variety of electronic systems such as personal computers, televisions, video cassette recorders (VCRs), audio systems and the like. Keyboard data entry is commonly used in data processing systems such as desktop and portable personal computers, and may also be used in devices such as personal digital assistants (PDAs), portable intelligent communicators (PICs), and Web TVs. Other user input devices may not include a keyboard as such, but may include keylike mechanisms such as buttons, triggers and the like.
Wireless user input devices such as wireless keyboards are becoming increasingly popular because of the portability and flexibility they offer. As wireless user input devices typically are battery-powered to increase their portability, these devices tend to be limited by the energy storage capability of the batteries used in the devices. Accordingly, it generally is desirable to provide the user of a device with the ability to monitor the status of the battery in a wireless user input device. In addition to power monitoring, it may also be desirable to monitor other characteristics of the user input device, to provide diagnostic information about the performance of the device, e.g., fault information or statistical information about the operation of the device.
However, conventional user input devices typically are designed to minimize production costs and thus tend to have limited diagnostic capabilities. Although a visual display of diagnostic information such as a low battery LED indicator may be provided on a user input device, the informational capability offered by such a simple display tends to be limited. For example, such a display is generally incapable of providing more detailed diagnostic information such as keystroke statistics, fault frequency and the like. In addition to this limited self-diagnostic capability, conventional user input devices typically are only capable of half-duplex communications, i.e., are only capable of sending data from the user input device to the data processing system. Consequently, it generally is not possible for a data processing system to request information from the user input device for purposes of performing more complex diagnostic analyses. Building full-duplex communication capability into a user input device to provide such a capability typically is not desirable, as this may add significantly to the complexity and cost of the device.